import java.rmi.Remote;
import java.rmi.RemoteException;


public interface ITicTacPlayer extends Remote{
	/**
	 * Should be called if another player clicks a square
	 * @param row which row the click was in
	 * @param column which column the click was in
	 * @throws RemoteException
	 */
	public void playerClicked(int row,int column) throws RemoteException;
	
	/**
	 * Should be called if someone wants to initiate a game with you
	 * @param server Referance to the server that wants to initiate a game
	 * @throws RemoteException
	 */
	public void initiate(ITicTacPlayer player)throws RemoteException;
	
	public String getName()throws RemoteException;
	
	/**
	 * Should be called if the referenced server wants to initiate a new game
	 * @throws RemoteException
	 */
	public void newGame() throws RemoteException;	
	
	public char getMark() throws RemoteException;
	
	/**
	 * Should be called if your game request is accepted
	 * @param mark Which mark the you should use
	 * @param shouldStart If you should start
	 * @throws RemoteException
	 */
	public void accept(char mark,boolean shouldStart)throws RemoteException;
	
	/**
	 * Should be called if your game request is declined
	 */
	public void decline() throws RemoteException;
	
	/**
	 *Should be called if the other player quits the game 
	 */
	public void quit() throws RemoteException;
	
}
